Вариант экзамена по ЯП, предварительный экзамен, 2002 г. 1)Что будет напечатано в результате работы следующей программы на Си++? #include class X { public: virtual void f() {cout<< ”X::fn”; g();} void g() { cout<< ”X::gn”;} }; class Y: public X { public: void f() {cout<< ”Y::fn”;} void g() { cout<< ”Y::gn”; f();} }; class Z: public Y { public: void f() {cout<< ”Z::fn”;} void g() { cout<< ”Z::gn”; f();} }; void P(X*px,Y*py) { px->f(); px->g(); py->f(); py->g(); delete px; delete py; } void main() { P(new X,new Y) cout<<”--------------n”; P(new Y, new Z); } 2) В каких из перечисленных ниже языков есть понятие динамического связывания подпрограмм (методов класса)? Ада 83, Ада 95, Си++, Оберон, Оберон-2, Модула-2, Java, Delphi, C#. 3)Ниже приведена спецификация шаблонной функции перемножения матриц (двухмерных массивов) на языке Си++. Напишите пример конкретизации этой функции, а также соответствующее описание родовой функции на языке Ада. Template Matrix& MatMult (Matrix& A, Matrix& B); 4)В каких из перечисленных языков есть конструкция try-finally? Объясните ее смысл для какого-нибудь языка: Ада, Си++, Оберон, Модула-2, Java, Delphi, C#. 5)Сколько конструкторов имеет класс S, описанный на языке C++? Ответ обоснуйте. Struct S { explicit S(int); double i,j;}; 6)Объясните смысл конструкции package в языке Java